
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_xml_validation_xmlschema_XMLSchemaBuilder__
#define __gnu_xml_validation_xmlschema_XMLSchemaBuilder__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace validation
      {
        namespace datatype
        {
            class Annotation;
            class SimpleType;
            class Type;
        }
        namespace xmlschema
        {
            class AnyAttribute;
            class ComplexType;
            class ElementDeclaration;
            class XMLSchema;
            class XMLSchemaBuilder;
        }
      }
    }
  }
  namespace javax
  {
    namespace xml
    {
      namespace namespace$
      {
          class QName;
      }
    }
  }
  namespace org
  {
    namespace relaxng
    {
      namespace datatype
      {
          class DatatypeLibrary;
      }
    }
    namespace w3c
    {
      namespace dom
      {
          class NamedNodeMap;
          class Node;
      }
    }
  }
}

class gnu::xml::validation::xmlschema::XMLSchemaBuilder : public ::java::lang::Object
{

public: // actually package-private
  XMLSchemaBuilder();
  virtual void parseSchema(::org::w3c::dom::Node *);
  virtual void parseTopLevelElement(::org::w3c::dom::Node *);
  virtual ::java::lang::Object * parseAttribute(::org::w3c::dom::Node *, jboolean);
  virtual jint parseFullDerivationSet(::java::lang::String *);
  virtual jint parseSimpleTypeDerivationSet(::java::lang::String *);
  virtual jint parseComplexTypeDerivationSet(::java::lang::String *);
  virtual jint parseBlockSet(::java::lang::String *);
  virtual jint parseComplexTypeBlockSet(::java::lang::String *);
  virtual ::java::lang::Object * parseElement(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ElementDeclaration *);
  virtual ::java::lang::Integer * getOccurrence(::java::lang::String *);
  virtual ::gnu::xml::validation::datatype::SimpleType * parseSimpleType(::javax::xml::namespace$::QName *);
  virtual ::gnu::xml::validation::datatype::SimpleType * parseSimpleType(::org::w3c::dom::Node *);
  virtual ::gnu::xml::validation::datatype::Type * parseComplexType(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ElementDeclaration *);
  virtual void parseSimpleContent(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ComplexType *);
  virtual void parseRestriction(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ComplexType *);
  virtual void parseExtension(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ComplexType *);
  virtual ::gnu::xml::validation::xmlschema::AnyAttribute * parseAnyAttribute(::org::w3c::dom::Node *);
  virtual ::gnu::xml::validation::datatype::Annotation * parseAnnotation(::org::w3c::dom::Node *);
private:
  static ::java::lang::String * getAttribute(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *);
  static ::javax::xml::namespace$::QName * asQName(::java::lang::String *, ::org::w3c::dom::Node *);
public: // actually package-private
  ::gnu::xml::validation::xmlschema::XMLSchema * __attribute__((aligned(__alignof__( ::java::lang::Object)))) schema;
  ::org::relaxng::datatype::DatatypeLibrary * typeLibrary;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_validation_xmlschema_XMLSchemaBuilder__
